#ifndef __W25Q32_H
#define __W25Q32_H

#include "spi.h"

#define W25Q32_PAGE_MAX 16
#define W25Q32_PAGE_SIZE 256

#define W25Q32_SECTOR_MAX 16
#define W25Q32_SECTOR_SIZE (W25Q32_PAGE_SIZE * W25Q32_PAGE_MAX)

#define W25Q32_BLOCK_MAX 64
#define W25Q32_BLOCK_SIZE (W25Q32_SECTOR_SIZE * W25Q32_SECTOR_MAX)

#define W25Q32_FLASH_SIZE (W25Q32_BLOCK_SIZE * W25Q32_BLOCK_MAX)

// 初始化
void W25Q32_Init(void);

// 读取ID
void W25Q32_ReadID(uint8_t * mid, uint16_t * did);

// addr必须 4KB 对齐，即 bit11 ~ bit0 必须为0
void W25Q32_write(uint32_t addr, uint8_t *data, uint32_t len);

void W25Q32_read(uint32_t addr, uint8_t *data, uint32_t len);

#endif

